////////////////////////////////////////////////////////////////////////////////////////
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING THIS SOFTWARE
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install, copy or use the software.
//
// Copyright (C) 2013, AerVision Technologies Pty Ltd, all rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
//   * The name of AerVision Technologies, may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors to demonstrate 
// www.AerCloud.net Framework as a Service API (FaaS), "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the copyright holder or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
////////////////////////////////////////////////////////////////////////////////////////

package com.aercloud.client.gui;

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.Component;
import javax.swing.SwingConstants;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

public class PanelSearchResultsBrowserHeader extends JPanel {
    
    private JLabel lblText;
    private JLabel lblSimilarity;
    private JLabel lblDatabaseImage;
    private JLabel lblQueryImage;

    /**
     * Create the panel.
     */
    public PanelSearchResultsBrowserHeader() {
        setAlignmentY(Component.TOP_ALIGNMENT);
        setAlignmentX(Component.LEFT_ALIGNMENT);
        setBorder(BorderFactory.createMatteBorder(0,0,1,0, Color.BLACK));
        GridBagLayout gridBagLayout = new GridBagLayout();
        gridBagLayout.columnWidths = new int[]{0, 0, 0, 0, 0};
        gridBagLayout.rowHeights = new int[]{0, 0, 0};
        gridBagLayout.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
        gridBagLayout.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
        setLayout(gridBagLayout);
        GridBagConstraints gbc_lblText = new GridBagConstraints();
        gbc_lblText.anchor = GridBagConstraints.NORTH;
        gbc_lblText.gridx = 0;
        gbc_lblText.gridy = 0;
        add(getLblText(), gbc_lblText);
        GridBagConstraints gbc_lblSimilarity = new GridBagConstraints();
        gbc_lblSimilarity.anchor = GridBagConstraints.NORTH;
        gbc_lblSimilarity.gridx = 1;
        gbc_lblSimilarity.gridy = 0;
        add(getLblSimilarity(), gbc_lblSimilarity);
        GridBagConstraints gbc_lblDatabaseImage = new GridBagConstraints();
        gbc_lblDatabaseImage.anchor = GridBagConstraints.NORTH;
        gbc_lblDatabaseImage.gridx = 2;
        gbc_lblDatabaseImage.gridy = 0;
        add(getLblDatabaseImage(), gbc_lblDatabaseImage);
        GridBagConstraints gbc_lblQueryImage = new GridBagConstraints();
        gbc_lblQueryImage.anchor = GridBagConstraints.NORTH;
        gbc_lblQueryImage.gridx = 3;
        gbc_lblQueryImage.gridy = 0;
        add(getLblQueryImage(), gbc_lblQueryImage);
    }
    
    public PanelSearchResultsBrowserHeader(String personName) {
        this();
        getLblSimilarity().setText(personName);
    }

    public JLabel getLblText() {
        if (lblText == null) {
        	lblText = new JLabel("Text");
        	lblText.setHorizontalAlignment(SwingConstants.CENTER);
            Dimension size = lblText.getPreferredSize();
            size.width = 256;
            lblText.setPreferredSize(size);
            lblText.setMinimumSize(size);
            lblText.setMaximumSize(size);
            lblText.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK));
        }
        return lblText;
    }
    
    public JLabel getLblSimilarity() {
        if (lblSimilarity == null) {
            lblSimilarity = new JLabel("Similarity %");
            lblSimilarity.setHorizontalAlignment(SwingConstants.CENTER);
            Dimension size = lblSimilarity.getPreferredSize();
            size.width = 96;
            lblSimilarity.setPreferredSize(size);
            lblSimilarity.setMinimumSize(size);
            lblSimilarity.setMaximumSize(size);
            lblSimilarity.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK));
        }
        return lblSimilarity;
    }
    
    public JLabel getLblDatabaseImage() {
        if (lblDatabaseImage == null) {
            lblDatabaseImage = new JLabel("Database Image");
            lblDatabaseImage.setHorizontalAlignment(SwingConstants.CENTER);
            Dimension size = lblSimilarity.getPreferredSize();
            size.width = 128;
            lblDatabaseImage.setPreferredSize(size);
            lblDatabaseImage.setMinimumSize(size);
            lblDatabaseImage.setMaximumSize(size);
            lblDatabaseImage.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK));
        }
        return lblDatabaseImage;
    }
    public JLabel getLblQueryImage() {
        if (lblQueryImage == null) {
        	lblQueryImage = new JLabel("Query Image");
        	lblQueryImage.setHorizontalAlignment(SwingConstants.CENTER);
            lblDatabaseImage.setHorizontalAlignment(SwingConstants.CENTER);
            Dimension size = lblSimilarity.getPreferredSize();
            size.width = 128;
            lblQueryImage.setPreferredSize(size);
            lblQueryImage.setMinimumSize(size);
            lblQueryImage.setMaximumSize(size);
            lblQueryImage.setBorder(BorderFactory.createMatteBorder(0,0,0,1, Color.BLACK));
        }
        return lblQueryImage;
    }
}
